package com.ssy.lingxi.scheduler.api.fallback;

import com.ssy.lingxi.common.response.ResponseCode;
import com.ssy.lingxi.common.response.Wrapper;
import com.ssy.lingxi.scheduler.api.feign.ScheduleTaskFeign;
import com.ssy.lingxi.scheduler.api.model.*;

import javax.validation.Valid;
import java.util.List;

/**
 * 定时任务OpenFeign接口Fallback
 * @author 万宁
 * @version 2.0.0
 * @date 2021-07-13
 */
public class ScheduleTaskFallback implements ScheduleTaskFeign {
    /**
     * 创建定时任务
     *
     * @param taskVO 接口参数
     * @return 定时任务的Id
     */
    @Override
    public Wrapper<Long> createScheduleTask(ScheduleTaskVO taskVO) {
        return Wrapper.fail(ResponseCode.SERVICE_SCHEDULER_ERROR);
    }

    /**
     * 创建永久任务
     *
     * @param taskVO 接口参数
     * @return 定时任务的Id
     */
    @Override
    public Wrapper<Long> createPermanentTask(@Valid PermanentTaskVO taskVO) {
        return Wrapper.fail(ResponseCode.SERVICE_SCHEDULER_ERROR);
    }

    /**
     * 查询定时任务信息列表
     *
     * @param queryVO 接口参数
     * @return 查询结果
     */
    @Override
    public Wrapper<List<ScheduleTaskDefinitionVO>> listScheduleTask(ScheduleTaskQueryVO queryVO) {
        return Wrapper.fail(ResponseCode.SERVICE_SCHEDULER_ERROR);
    }

    /**
     * 修改任务的启动时间
     *
     * @param updateVO 接口参数
     * @return 修改结果
     */
    @Override
    public Wrapper<Void> updateScheduleTaskExecTime(@Valid ScheduleTaskUpdateExecTimeVO updateVO) {
        return Wrapper.fail(ResponseCode.SERVICE_SCHEDULER_ERROR);
    }

    /**
     * 调用方执行完成定时任务后，通知定时任务服务删除任务
     *
     * @param idVO 接口参数
     * @return 通知结果
     */
    @Override
    public Wrapper<Void> deleteScheduleTask(ScheduleTaskIdVO idVO) {
        return Wrapper.fail(ResponseCode.SERVICE_SCHEDULER_ERROR);
    }
}
